{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bc2755df-0914-4ba5-bb00-98860f599b8d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取指定多行多列的数据：\n",
      "[[2022 9065]\n",
      " [2021 8722]\n",
      " [2020 7762]\n",
      " [2019 6413]\n",
      " [2018 5826]\n",
      " [2017 5583]\n",
      " [2016 5210]\n",
      " [2015 4894]\n",
      " [2014 4631]\n",
      " [2013 4282]\n",
      " [2012 4084]\n",
      " [2011 3875]\n",
      " [2010 3561]\n",
      " [2009 3321]\n",
      " [2008 3242]\n",
      " [2007 3120]\n",
      " [2006 3071]\n",
      " [2004 2853]\n",
      " [2003 2249]\n",
      " [2002 1978]\n",
      " [2000 1939]\n",
      " ['1996/1998' 1820]]\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import xlwings as xw\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "df = pd.read_excel(\"C:/Users/22644/Desktop/include/极度濒危动物数量.xlsx\")\n",
    "#data=df.values#获取整个工作表数据\n",
    "#print(\"读取整个工作表的数据：\\n{0}\".format(data))\n",
    "df1=df.loc[:,['Year','TOTAL']].values#读取第一行第二行的列的值，这里需要嵌套列表\n",
    "print(\"读取指定多行多列的数据：\\n{0}\".format(df1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7cf12b6d-c53e-47ec-8659-928ac426353d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            年    数量\n",
      "0        2022  9065\n",
      "1        2021  8722\n",
      "2        2020  7762\n",
      "3        2019  6413\n",
      "4        2018  5826\n",
      "5        2017  5583\n",
      "6        2016  5210\n",
      "7        2015  4894\n",
      "8        2014  4631\n",
      "9        2013  4282\n",
      "10       2012  4084\n",
      "11       2011  3875\n",
      "12       2010  3561\n",
      "13       2009  3321\n",
      "14       2008  3242\n",
      "15       2007  3120\n",
      "16       2006  3071\n",
      "17       2004  2853\n",
      "18       2003  2249\n",
      "19       2002  1978\n",
      "20       2000  1939\n",
      "21  1996/1998  1820\n"
     ]
    }
   ],
   "source": [
    "df1 = pd.DataFrame(df1)\n",
    "df1.to_excel(\"C:/Users/22644/Desktop/include/极度濒危与森林覆盖.xlsx\",'Sheet1', index=False, header=None)\n",
    "df1 = pd.read_excel(\"C:/Users/22644/Desktop/include/极度濒危与森林覆盖.xlsx\", names=['年','数量'], header=None)\n",
    "df1.to_excel(\"C:/Users/22644/Desktop/include/濒危物种与森林覆盖.xlsx\",'Sheet1', index=False, header=None)\n",
    "#获取不同年份极度濒危动物数量，加以标签并写入Excel表中\n",
    "print(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b206a040-744f-43c7-98b0-3c0d9c88a758",
   "metadata": {},
   "outputs": [],
   "source": [
    "#重复以上步骤，得到脆弱与濒危的信息\n",
    "df2=pd.read_excel(\"C:/Users/22644/Desktop/include/脆弱.xlsx\")\n",
    "df21=df2.loc[:,['Year','TOTAL']].values\n",
    "df21=pd.DataFrame(df21)\n",
    "df21.to_excel(\"C:/Users/22644/Desktop/include/脆弱与森林覆盖.xlsx\",'Sheet1', index=False, header=None)\n",
    "df21 = pd.read_excel(\"C:/Users/22644/Desktop/include/脆弱与森林覆盖.xlsx\", names=['年','数量'], header=None)\n",
    "df21.to_excel(\"C:/Users/22644/Desktop/include/濒危物种与森林覆盖2.xlsx\",'Sheet2', index=False, header=None)\n",
    "df3=pd.read_excel(\"C:/Users/22644/Desktop/include/濒危动物.xlsx\")\n",
    "df31=df3.loc[:,['Year','TOTAL']].values\n",
    "df31=pd.DataFrame(df31)\n",
    "df31.to_excel(\"C:/Users/22644/Desktop/include/濒危动物与森林覆盖.xlsx\",'Sheet1', index=False, header=None)\n",
    "df31 = pd.read_excel(\"C:/Users/22644/Desktop/include/濒危动物与森林覆盖.xlsx\", names=['年','数量'], header=None)\n",
    "df31.to_excel(\"C:/Users/22644/Desktop/include/濒危动物与森林覆盖3.xlsx\",'Sheet2', index=False, header=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8ec7ece1-a051-4a30-9115-1981ab41dab2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#获取全球森林不同年份的比例\n",
    "df=pd.read_excel(\"C:/Users/22644/Desktop/include/森林覆盖.xlsx\")\n",
    "a=df[\"Forest (1990)\"].sum()\n",
    "b=df[\"Forest (2000)\"].sum()\n",
    "c=df[\"Forest (2010)\"].sum()\n",
    "d=df[\"Forest (2020)\"].sum()\n",
    "#不同年份的森林总面积\n",
    "e=df[\"Total land area\"].sum()#全球土地总面积\n",
    "list_a=[]\n",
    "list_a.append(a)\n",
    "list_a.append(b)\n",
    "list_a.append(c)\n",
    "list_a.append(d)\n",
    "import xlwt\n",
    "\n",
    "workbook = xlwt.Workbook(encoding = 'utf-8')        #设置一个workbook，其编码是utf-8\n",
    "#worksheet = workbook.add_sheet(\"test_sheet\")        #新增一个sheet\n",
    "worksheet = workbook.add_sheet(\"Sheet1\")        #新增一个sheet\n",
    "\n",
    "a = ['1990','2000','2010','2020']                                     #列1\n",
    "\n",
    "worksheet.write(0,0,label='年')                     #将‘列1’作为标题\n",
    "worksheet.write(0,1,label='森林覆盖')                     #将‘列2’作为标题\n",
    "for i in range(len(a)):                             #循环将a和b列表的数据插入至excel\n",
    "    worksheet.write(i+1,0,label=a[i])\n",
    "    worksheet.write(i+1,1,label=list_a[i])\n",
    "workbook.save(\"C:/Users/22644/Desktop/include/年份与森林覆盖.xls\") #这里save需要特别注意，文件格式只能是xls，不能是xlsx，不然会报错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "447418dc-8ce9-454f-bc5c-cd151b091e0a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      年    数量         森林覆盖率\n",
      "0  2020  7762  2.387554e-08\n",
      "1  2010  3561  2.415428e-08\n",
      "2  2000  1939  2.445858e-08\n"
     ]
    }
   ],
   "source": [
    "df4=pd.read_excel(\"C:/Users/22644/Desktop/include/年份与森林覆盖率.xls\")\n",
    "data = pd.merge(df1,df4,left_on='年',right_on='年')\n",
    "data = pd.DataFrame(data)\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "27cad3dd-460c-4d25-9149-3e2369cecaa7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      年  数量_x         森林覆盖率   数量_y\n",
      "0  2020  7762  2.387554e-08  14718\n",
      "1  2010  3561  2.415428e-08   9529\n",
      "2  2000  1939  2.445858e-08   6488\n"
     ]
    }
   ],
   "source": [
    "data1=pd.merge(data,df21,left_on='年',right_on='年')\n",
    "print(data1)               "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0332bc6d-614d-48a1-a019-5a052c6bf2b5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      年  数量_x         森林覆盖率   数量_y     数量\n",
      "0  2020  7762  2.387554e-08  14718  13285\n",
      "1  2010  3561  2.415428e-08   9529   5255\n",
      "2  2000  1939  2.445858e-08   6488   2614\n"
     ]
    }
   ],
   "source": [
    "data2=pd.merge(data1,df31,left_on='年',right_on='年')\n",
    "print(data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bf604ce7-93fd-4e04-8d45-ce5539668ea1",
   "metadata": {},
   "outputs": [],
   "source": [
    "data2.to_excel(\"C:/Users/22644/Desktop/include/总计与森林覆盖率.xlsx\",index=False,header=None)\n",
    "#将最后合并的结果保存到excel中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8872d594-6bfb-465e-b25e-793c282db03d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      年  濒危物种数量        森林覆盖率1  极度濒危物种数量  脆弱物种数量\n",
      "0  2020    7762  2.387554e-08     14718   13285\n",
      "1  2010    3561  2.415428e-08      9529    5255\n",
      "2  2000    1939  2.445858e-08      6488    2614\n"
     ]
    }
   ],
   "source": [
    "import openpyxl as op\n",
    "wb=op.open(\"C:/Users/22644/Desktop/include/总计与森林覆盖率.xlsx\")#打开新增一列.xlsx这个工作簿\n",
    "ws=wb['Sheet1']#打开Sheet1这个工作表\n",
    "\n",
    "\n",
    "ws.insert_rows(1,1)#给原第1行前面插入1行\n",
    "wb.save(\"C:/Users/22644/Desktop/include/总计与森林覆盖率.xlsx\")#保存修改\n",
    "df5 = pd.read_excel(\"C:/Users/22644/Desktop/include/总计与森林覆盖率.xlsx\")\n",
    "df5.columns = ['年','濒危物种数量','森林覆盖率1','极度濒危物种数量','脆弱物种数量']\n",
    "print(df5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2e9c9324-5d2e-43cf-b804-7a078e1da729",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取指定列的数据：\n",
      "[[7.76200000e+03 1.47180000e+04 1.32850000e+04 2.38755438e-08]\n",
      " [3.56100000e+03 9.52900000e+03 5.25500000e+03 2.41542796e-08]\n",
      " [1.93900000e+03 6.48800000e+03 2.61400000e+03 2.44585823e-08]]\n"
     ]
    }
   ],
   "source": [
    "df9=df5.loc[:,['濒危物种数量','极度濒危物种数量','脆弱物种数量','森林覆盖率1']].values\n",
    "print('读取指定列的数据：\\n{0}'.format(df9))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b4202d8e-ed99-4a99-b0d5-6dbbeb73ead6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   濒危物种数量  极度濒危物种数量  脆弱物种数量         森林覆盖率\n",
      "0    7762     14718   13285  2.387554e-08\n",
      "1    3561      9529    5255  2.415428e-08\n",
      "2    1939      6488    2614  2.445858e-08\n",
      "            濒危物种数量  极度濒危物种数量    脆弱物种数量     森林覆盖率\n",
      "濒危物种数量    1.000000  0.994926  0.999444 -0.962247\n",
      "极度濒危物种数量  0.994926  1.000000  0.991016 -0.984749\n",
      "脆弱物种数量    0.999444  0.991016  1.000000 -0.952633\n",
      "森林覆盖率    -0.962247 -0.984749 -0.952633  1.000000\n"
     ]
    }
   ],
   "source": [
    "df9 = pd.DataFrame(df9)\n",
    "df9.to_excel(\"C:/Users/22644/Desktop/include/数量与森林覆盖率.xlsx\",'Sheet1', index=False, header=None)\n",
    "wb=op.open('C:/Users/22644/Desktop/include/数量与森林覆盖率.xlsx')#打开新增一列.xlsx这个工作簿\n",
    "ws=wb['Sheet1']#打开Sheet1这个工作表\n",
    "\n",
    "#ws.insert_cols(2,3)#给原第2列前面插入3列\n",
    "ws.insert_rows(1,1)#给原第1行前面插入1行\n",
    "wb.save('C:/Users/22644/Desktop/include/数量与森林覆盖率.xlsx')#\n",
    "df10 = pd.read_excel(\"C:/Users/22644/Desktop/include/数量与森林覆盖率.xlsx\")\n",
    " \n",
    "# 设置表头\n",
    "df10.columns = ['濒危物种数量','极度濒危物种数量','脆弱物种数量','森林覆盖率']\n",
    "\n",
    " \n",
    "# 将修改后的DataFrame写入Excel文件\n",
    "df10.to_excel(\"C:/Users/22644/Desktop/include/数量与森林覆盖率.xlsx\", index=False)\n",
    "print(df10)\n",
    "cor=df10.corr(method='pearson')\n",
    "print(cor)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "64d3050d-4b5f-4a3b-ba63-585e0634fcf6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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tmzB9evX8e2336JHjx64ePEipkyZghcvXiAqKgqWlpbo2LEj2rVrhyNHjqBSpUoICgpCZmam1melpqZCqVQiOjpaXKZSqVBQUIDz58+X9OclIiJ6JQlK/x1/pqamWLVqFQYOHIjJkydDrVaLD2n5+Phg0aJFCAkJ0drnp59+QmpqqjhA90uCICAsLAwPHjxA586d4eLigtGjR4tVKUOQCCV9g/LfpKWlwcrKqsigoBqNRqsc9/TpU/FJweIIgoCcnBxxfCugsIN6UlISfHx8xGW5ubliH6fiZGRk6GweNLazZ88iPT0dPXv2FM/R06dPceTIEQwaNEhclpubi+joaK2hKP5pv0Szj1Vp6esn5fkuZX39pNhxjue8tIS2kmK/GQcsLi09lbd0b/SG5BcOG+xYtr66H7T6q+TkZMTGxqJNmzbiUERlUYlbrP7uVV/u732cXpdUARCfFvwrR0fHIknS65Kql/uUda1bty6yzNXVFYMHD9ZaZmVlVapJFRERUVnl7u7+ymGWypISv4SZiIiIiIr3xi1WRERE9O9Qknf8/VsxsSIiIiL9GHAcq4qKpUAiIiIiA2FiRURERGQgLAUSERGRftjHSie2WBEREREZCFusiIiISC+GfAlzRcUWKyIiIiIDYWJFREREZCAsBRIREZF+2HldJyZWREREpBf2sdKNpUAiIiIiA2FiRURERGQgLAUSERGRflgK1ImJFREREelFws7rOrEUSERERGQgTKyIiIiIDISlQCIiItKPhn2sdGGLFREREZGBsMWKiIiI9MPO6zqxxYqIiIjIQJhYERERERkIS4FERESkHw4QqhMTKyIiItILBwjVjaVAIiIiIgNhYkVERERkICwFEhERkX7Yx0onJlZERESkHyZWOrEUSERERGQgTKyIiIiIDISlQCIiItILh1vQjS1WRERERAbCFisiIiLSj4ad13VhixURERGVafHx8WjRogUcHBwwefJkCHqUJKOiolC/fn04OTkhMjJS73VviokVERERlVkKhQLBwcHw9fVFbGwsrl+/jg0bNrx2n7S0NPTq1QsDBgzA2bNnsXXrVpw4cULnOkNgYkVERET6EQTDTXo6ePAgXrx4gcjISNSqVQtz5szB2rVrX7vP1q1b4ebmhvDwcNSuXRszZswQ93ndOkNgYkVERET6ETQGmxQKBeRyudakUCiK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qG5MrIiIiEg/ZeglzGUVS4FEREREBsLEioiIiMhAWAokIiIivbCPlW5ssSIiIiIyELZYERERkV4EDhCqE1usiIiIiAyEiRURERGRgbAUSERERPph53WdmFgRERGRXgQOEKoTS4FEREREBsLEioiIiMhAWAokIiIivXCAUN2YWBEREZF+OI6VTiwFEhERERkIEysiIiIiA2EpkIiIiPTCPla6scWKiIiIyEDYYkVERER64UuYdWOLFREREZGBMLEiIiIiMhCWAomIiEgvgsDO67owsSIiIiL9sI+VTiwFEhERERkIEysiIiIql+Lj49GiRQs4ODhg8uTJepcqg4ODIZFIxCkwMFBcFxUVhfr168PJyQmRkZEljomJFREREelF0AgGm96UQqFAcHAwfH19ERsbi+vXr2PDhg167XvhwgVcvXoVmZmZyMzMxO7duwEAaWlp6NWrFwYMGICzZ89i69atOHHiRIniYmJFREREeilLidXBgwfx4sULREZGolatWpgzZw7Wrl2rc7+kpCQIgoBGjRrB3t4e9vb2sLa2BgBs3boVbm5uCA8PR+3atTFjxgy9jvlXTKyIiIio1CkUCsjlcq1JoVDovf/ly5fh5+cHKysrAICPjw+uX7+uc7/z589DrVbDw8MD1tbW6N+/PzIzM8VjduzYERKJBADQsmVLxMXFleh78alA0tLXj7l2aQptxfNd2niNl67OKfHGDoHKqLlz52LWrFlay2bOnImIiAitZSEhITh58mSR/U1MTNC/f39xXiKRwMTEBJmZmXBwcHjl596+fRu+vr5YsGABpFIphg4diunTp2PFihWQy+Vo0KCBuK2trS2Sk5NL9L0kAgeloL84ZFvf2CH8a3ST38B+s7rGDuNfpafyFo5WaWTsMP41OqfE45doPp5fWkrjj4Ynnw002LEc56wv0kIlk8kgk8m0lqWkpCAvL6/I/osXL4ZEItHqYF6tWjVER0fD3d1d7ziioqIQGhqKtLQ09OvXD23btsW4ceMAAGq1GhYWFlAqlXofjy1WREREVOqKS6KKU6VKlWKXu7q6Ij5eu0U0KysL5ubmJYrD3t4e6enpUCgUcHR0RFpa2hsdj23iREREpJey1Hm9RYsWiI6OFucTExPF5Oh1QkNDtfaLiYmBq6srZDJZkWNeunSpRK1fABMrIiIiKofat2+PFy9eYNOm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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(cor,\n",
    "            annot=True,  # 显示相关系数的数据\n",
    "            center=0.5,  # 居中\n",
    "            fmt='.2f',  # 只显示两位小数\n",
    "            linewidth=0.5,  # 设置每个单元格的距离\n",
    "            linecolor='white',  # 设置间距线的颜色\n",
    "            vmin=-1, vmax=1,  # 设置数值最小值和最大值\n",
    "            xticklabels=True, yticklabels=True,  # 显示x轴和y轴\n",
    "            square=True,  # 每个方格都是正方形\n",
    "            cbar=True,  # 绘制颜色条\n",
    "            cmap='coolwarm_r',  # 设置热力图颜色\n",
    "            )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "23deff92-8e3b-425f-8d62-81c1b9baafc1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
